hysop.operator.custom_symbolic module

@file hysop/operator/symbolic.py CustomSymbolicOperator solver frontend.

class hysop.operator.custom_symbolic.CustomSymbolicOperator(name, exprs, variables, implementation=None, base_kwds=None, **kwds)[source]

Bases: ComputationalGraphNodeFrontend

Interface for custom symbolic operators. Available implementations are:

*OPENCL (opencl code generated kernels)

Initialize a CustomSymbolicOperator operator frontend.

See hysop.operator.base.CustomSymbolicOperatorBase to see how expressions are parsed.

Parameters:
  • name (str) – Name of this custom operator.

  • exprs (hysop.symbolic.exprs or array like of valid expresions) – Expressions that will generate code. Valid expressions are defined in SymbolicExpressionParser.

  • variables (dict) – dictionary of fields as keys and topologies as values.

  • implementation (Implementation, optional, defaults to None) – target implementation, should be contained in available_implementations(). If None, implementation will be set to default_implementation().

  • base_kwds (dict, optional, defaults to None) – Base class keywords arguments. If None, an empty dict will be passed.

  • kwds – Keywords arguments that will be passed towards implementation operator __init__.

classmethod default_implementation()[source]

Return the default Implementation, should be compatible with available_implementations.

classmethod implementations()[source]

Should return all implementations as a dictionnary. Keys are Implementation instances and values are either ComputationalGraphNode or ComputationalGraphNodeGenerator.